package com.zjsru.plan2024.codeBase.fifty;

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

/**
 * 58. 最后一个单词的长度
 * @Author: cookLee
 * @Date: 2024-06-30
 */
public class LengthOfLastWord {

    /**
     * 主
     * \
     * 输入：s = "Hello World"
     * 输出：5
     * 解释：最后一个单词是“World”，长度为 5。
     * \
     * 输入：s = "   fly me   to   the moon  "
     * 输出：4
     * 解释：最后一个单词是“moon”，长度为 4。
     * \
     * 输入：s = "luffy is still joyboy"
     * 输出：6
     * 解释：最后一个单词是长度为 6 的“joyboy”。
     * \
     * @param args args
     */
    public static void main(String[] args) {
        LengthOfLastWord lengthOfLastWord = new LengthOfLastWord();
        String s = "   fly me   to   the moon  ";
        System.out.println(lengthOfLastWord.lengthOfLastWord(s));
    }

    /**
     * 最后一个单词长度
     *
     * @param s s
     * @return int
     */
    public int lengthOfLastWord(String s) {
        List<String> collect = Arrays.stream(s.split(" ")).filter(v -> !v.isEmpty()).map(String::trim).collect(Collectors.toList());
        return collect.get(collect.size() - 1).length();
    }

    /**
     * 双指针
     *
     * @param s s
     * @return int
     */
    public int lengthOfLastWord2(String s) {
        int end = 0;
        for (int i = s.length() - 1; i >= 0; --i) {
            if (s.charAt(i) != ' ' && end == 0) {
                end = i;
            }
            if (s.charAt(i) == ' '&& end != 0) {
                return end - i;
            }
            if (i == 0 && end != 0) {
                return end - i + 1;
            }
        }
        return 1;
    }


}
